﻿using DevExpress.XtraTabbedMdi;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DevExpress.LookAndFeel;
using Public;
using BUS;

namespace QuanLyKhoHangVatTu
{
    public partial class Main : DevExpress.XtraEditors.XtraForm
    {
        NhomVatTu_BUS nvt_bus = new NhomVatTu_BUS();
        NhomVatTu_PB nvt_pb = new NhomVatTu_PB();
        Kho_BUS k_bus = new Kho_BUS();
        Kho_PB k_pb = new Kho_PB();
        VatTu_BUS vattu_bus = new VatTu_BUS();
        VatTu_PB vattu_pb = new VatTu_PB();
        NhapKho_PB nk_pb = new NhapKho_PB();
        NhapKho_BUS nk_bus = new NhapKho_BUS();
        XuatKho_PB xk_pb = new XuatKho_PB();
        XuatKho_BUS xk_bus = new XuatKho_BUS();
        DonVi_BUS dv_bus = new DonVi_BUS();
        DonVi_PB dv_pb = new DonVi_PB();
        NhanVien_BUS nhanvien_bus = new NhanVien_BUS();
        NhanVien_PB nhanvien_pb = new NhanVien_PB();
        NhomKHNCC_BUS nhom_bus = new NhomKHNCC_BUS();
        NhomKHNCC_PB nhom_pb = new NhomKHNCC_PB();
        DonViTinh_BUS dvt_bus = new DonViTinh_BUS();
        DonViTinh_PB dvt_pb = new DonViTinh_PB();
        ChuyenKho_BUS ck_bus = new ChuyenKho_BUS();
        ChuyenKho_PB ck_pb = new ChuyenKho_PB();
        ChiTietNhapKho ct_nk = new ChiTietNhapKho();
        public Main()
        {
            InitializeComponent();
        }

        private void barButtonItem6_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {

        }

        private void navBarControl1_Click(object sender, EventArgs e)
        {

        }

        private void barButtonItem3_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            ChiTietNhomVatTuHangHoa ctnvt = new ChiTietNhomVatTuHangHoa();
            addChild(ctnvt);
        }

        private void Main_Load(object sender, EventArgs e)
        {
            DevExpress.UserSkins.BonusSkins.Register();
            UserLookAndFeel.Default.SetSkinStyle("Blue");
            XtraTabbedMdiManager mdiManager = new XtraTabbedMdiManager();
            mdiManager.MdiParent = this;
        }
        //Office 2010 Silver  / Metropolis/ Metropolis Dark /Blue/Office 2007 Pink/Office 2007 Green/Office 2007 Silver/Caramel/Whiteprint/*Springtime*/*Summer 2008*/Valentine/*Xmas 2008 Blue/
        private void addChild(System.Windows.Forms.Form frm)
        {
            foreach (System.Windows.Forms.Form _mdi_child in this.MdiChildren)
            {
                if (_mdi_child.Name == frm.Name)
                    _mdi_child.Close();
            }
            frm.MdiParent = this;
            frm.Show();
        }

        private void barButtonItem32_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            Flag_PB.Sua = false;
            IChildForm childForm = this.ActiveMdiChild as IChildForm;
            if (childForm == null) return;
            childForm.Them();
            

            //if (Flag_PB.Flag == 1)
            //{
            //    Flag_PB.ThemSua = 1;
            //    NhomvatTuHangHoa themnvt = new NhomvatTuHangHoa();
            //    if (themnvt.ShowDialog() == DialogResult.OK)
            //    {
            //        ChiTietNhomVatTuHangHoa ctnvt = new ChiTietNhomVatTuHangHoa();
            //        addChild(ctnvt);
            //    }
            //}
            //if (Flag_PB.Flag == 2)
            //{
            //    Flag_PB.ThemSua = 1;
            //    Kho k = new Kho();
            //    if (k.ShowDialog() == DialogResult.OK)
            //    {
            //        ChiTietKho ctk = new ChiTietKho();
            //        addChild(ctk);
            //    }

            //}
            //if (Flag_PB.Flag == 4)
            //{
            //    Flag_PB.ThemSua = 1;
            //    NhanVien nhanvien = new NhanVien();
            //    if (nhanvien.ShowDialog() == DialogResult.OK)
            //    {
            //        ChiTietNhanVien ctnv = new ChiTietNhanVien();
            //        addChild(ctnv);
            //    }

            //}
            if (Flag_PB.Flag == 5)
            {
                Flag_PB.ThemSua = 1;
                frmNhapkho nk = new frmNhapkho();
                if (nk.ShowDialog() == DialogResult.OK)
                {
                    ChiTietNhapKho ctn = new ChiTietNhapKho();
                    addChild(ctn);
                }
            }

            if (Flag_PB.Flag == 7)
            {
                Flag_PB.ThemSua = 1;
                frmXuatKho xk = new frmXuatKho();
                if (xk.ShowDialog() == DialogResult.OK)
                {
                    ChiTietXuatKho ctx = new ChiTietXuatKho();
                    addChild(ctx);
                }
            }
            
            

            if (Flag_PB.Flag == 11)
            {
                Flag_PB.ThemSua = 1;
                ChuyenKho ck = new ChuyenKho();
                if (ck.ShowDialog() == DialogResult.OK)
                {
                    ChiTietChuyenKho ctck = new ChiTietChuyenKho();
                    addChild(ctck);
                }
            }
            
        }

        private void barButtonItem33_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            Flag_PB.Sua = true;
            IChildForm childForm = this.ActiveMdiChild as IChildForm;
            if (childForm == null) return;
            childForm.Sua();


            //if (Flag_PB.Flag == 1)
            //{
            //    Flag_PB.ThemSua = 2;
            //    NhomvatTuHangHoa themnvt = new NhomvatTuHangHoa();
            //    if (themnvt.ShowDialog() == DialogResult.OK)
            //    {
            //        ChiTietNhomVatTuHangHoa ctnvt = new ChiTietNhomVatTuHangHoa();
            //        addChild(ctnvt);
            //    }
            //}
            //if (Flag_PB.Flag == 2)
            //{
            //    Flag_PB.ThemSua = 2;
            //    Kho k = new Kho();
            //    if (k.ShowDialog() == DialogResult.OK)
            //    {
            //        ChiTietKho ctk = new ChiTietKho();
            //        addChild(ctk);
            //    }

            //}
            //if (Flag_PB.Flag == 3)
            //{
            //    Flag_PB.ThemSua = 2;
            //    HangHoaVatTu hhvt = new HangHoaVatTu();
            //    if (hhvt.ShowDialog() == DialogResult.OK)
            //    {
            //        ChiTietVatTuHangHoa ctvthh = new ChiTietVatTuHangHoa();
            //        addChild(ctvthh);
            //    }
            //}
            //if (Flag_PB.Flag == 4)
            //{
            //    Flag_PB.ThemSua = 2;
            //    NhanVien nv = new NhanVien();
            //    if (nv.ShowDialog() == DialogResult.OK)
            //    {
            //        ChiTietNhanVien ctnv = new ChiTietNhanVien();
            //        addChild(ctnv);
            //    }

            //}
            if (Flag_PB.Flag == 5)
            {
                Flag_PB.ThemSua = 2;
                frmNhapkho nk = new frmNhapkho();
                if (nk.ShowDialog() == DialogResult.OK)
                {
                    ChiTietNhapKho ctn = new ChiTietNhapKho();
                    addChild(ctn);
                }

            }
            //if (Flag_PB.Flag == 6)
            //{
            //    Flag_PB.ThemSua = 2;
            //    DonVi dv = new DonVi();
            //    if (dv.ShowDialog() == DialogResult.OK)
            //    {
            //        ChiTietDonVi ctdv = new ChiTietDonVi();
            //        addChild(ctdv);
            //    }

            //}
            if (Flag_PB.Flag == 7)
            {
                Flag_PB.ThemSua = 2;
                frmXuatKho xk = new frmXuatKho();
                if (xk.ShowDialog() == DialogResult.OK)
                {
                    ChiTietXuatKho ctx = new ChiTietXuatKho();
                    addChild(ctx);
                }
            }
            if (Flag_PB.Flag == 11)
            {
                Flag_PB.ThemSua = 2;
                ChuyenKho ck = new ChuyenKho();
                if (ck.ShowDialog() == DialogResult.OK)
                {
                    ChiTietChuyenKho ctck = new ChiTietChuyenKho();
                    addChild(ctck);
                }
            }
            //if (Flag_PB.Flag == 10)
            //{
            //    Flag_PB.ThemSua = 2;
            //    DonViTinh dvt = new DonViTinh();
            //    if (dvt.ShowDialog() == DialogResult.OK)
            //    {
            //        ChiTietDonViTinh ctdvt = new ChiTietDonViTinh();
            //        addChild(ctdvt);
            //    }
            //}
        }

        private void barButtonItem34_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            IChildForm childForm = this.ActiveMdiChild as IChildForm;
            if (childForm == null) return;
            childForm.Xoa();





            //if (Flag_PB.Flag == 1)
            //{
            //    if (MessageBox.Show("Bạn có thực sự muốn xóa Nhóm vật tư <" + NhomVatTu_PB.MaNhomVatTu + "> đã chọn không?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
            //    {
            //        nvt_bus.XoaNhomVatTu(nvt_pb);
            //        ChiTietNhomVatTuHangHoa ctnvt = new ChiTietNhomVatTuHangHoa();
            //        addChild(ctnvt);
            //    }
            //}
            //if (Flag_PB.Flag == 2)
            //{
            //    if (MessageBox.Show("Bạn có thực sự muốn xóa Kho <" +Kho_PB.MaKho + "> đã chọn không?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
            //    {
            //        k_bus.XoaKho(k_pb);
            //        ChiTietKho ctk = new ChiTietKho();
            //        addChild(ctk);
            //    }
            //}
            //if (Flag_PB.Flag == 3)
            //{
            //    if (MessageBox.Show("Bạn có thực sự muốn xóa Vật tư, Hàng hóa <" + VatTu_PB.MaVatTu + "> đã chọn không?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
            //    {
            //        vattu_bus.XoaDVCD(vattu_pb);
            //        vattu_bus.XoaVatTu(vattu_pb);
            //        ChiTietVatTuHangHoa ctvthh = new ChiTietVatTuHangHoa();
            //        addChild(ctvthh);
            //    }
            //}
            //if (Flag_PB.Flag == 4)
            //{
            //    if (MessageBox.Show("Bạn có thực sự muốn xóa Nhân viên <" + NhanVien_PB.MaNhanVien + "> đã chọn không?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
            //    {
            //        nhanvien_bus.XoaNhanVien(nhanvien_pb);
            //        ChiTietNhanVien ctnv = new ChiTietNhanVien();
            //        addChild(ctnv);
            //    }
            //}
            if (Flag_PB.Flag == 5)
            {
                if (MessageBox.Show("Bạn có thực sự muốn xóa Phiếu nhập <" + NhapKho_PB.MaPhieuNhap + "> đã chọn không?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
                {

                    // có mã phieu nhap
                    // select ra chi tiet phieu nhap -> biet so luong tung mat hang trong chi tiet nhap
                    DataTable dt = nk_bus.TimMaPhieuNhap(NhapKho_PB.MaPhieuNhap);
                    if (dt != null)
                    {
                        foreach (DataRow r in dt.Rows)
                        {
                            string mahang = r["MAHANG"].ToString();
                            string makho = r["MAKHO"].ToString();
                            int soluong = Convert.ToInt32(r["SOLUONG"]);
                            int slton = nk_bus.LaySLTonKho(mahang, makho);
                            slton -= soluong;
                            NhapKho_PB.SoLuong = slton.ToString();
                            NhapKho_PB.MaHang = mahang;
                            NhapKho_PB.MaKho = makho;
                            nk_bus.SuaTonKho(nk_pb);
                        }
                    }

                    nk_bus.XoaNhapKho1(nk_pb);
                    nk_bus.XoaNhapKho(nk_pb);

                    ChiTietNhapKho ctn = new ChiTietNhapKho();
                    addChild(ctn);
                }
            }

            if (Flag_PB.Flag == 7)
            {
                if (MessageBox.Show("Bạn có thực sự muốn xóa Phiếu xuất <" + XuatKho_PB.MaPX + "> đã chọn không?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
                {
                    DataTable dt = xk_bus.TimMaPhieuXuat(XuatKho_PB.MaPX);
                    if (dt != null)
                    {
                        foreach (DataRow r in dt.Rows)
                        {
                            string mahang = r["MAHANG"].ToString();
                            string makho = r["MAKHO"].ToString();
                            int soluong = Convert.ToInt32(r["SOLUONG"]);
                            int slton = xk_bus.LaySLTonKho(mahang, makho);
                            slton += soluong;
                            XuatKho_PB.SoLuong = slton.ToString();
                            XuatKho_PB.MaHang = mahang;
                            XuatKho_PB.MaKho = makho;
                            xk_bus.SuaTonKho(xk_pb);
                        }
                    }

                    xk_bus.XoaPhieuXuat1(xk_pb);
                    xk_bus.XoaPhieuXuat(xk_pb);
                    ChiTietXuatKho ctx = new ChiTietXuatKho();
                    addChild(ctx);
                }
            }

            if (Flag_PB.Flag == 11)
            {
                if (MessageBox.Show("Bạn có thực sự muốn xóa Phiếu chuyển kho <" + ChuyenKho_PB.MaChuyenKho + "> đã chọn không?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
                {
                    DataTable dt = ck_bus.TimMaPhieuChuyenKho(ChuyenKho_PB.MaChuyenKho);
                    if (dt != null)
                    {
                        foreach (DataRow r in dt.Rows)
                        {
                            string mahang = r["MAHANG"].ToString();
                            string makhoxuat = r["XUATTAIKHO"].ToString();
                            string makhonhap = r["NHAPTAIKHO"].ToString();
                            int soluong = Convert.ToInt32(r["SOLUONG"]);
                            int sltonkhoxuat = ck_bus.LaySLTonKho(mahang, makhoxuat);
                            int sltonkhonhap = ck_bus.LaySLTonKho(mahang, makhonhap);
                            sltonkhoxuat += soluong;
                            ChuyenKho_PB.SoLuong = sltonkhoxuat.ToString();
                            ChuyenKho_PB.MaHang = mahang;
                            ChuyenKho_PB.XuatTaiKho = makhoxuat;
                            ck_bus.SuaTonKhoXuat(ck_pb);
                            sltonkhonhap -= soluong;
                            ChuyenKho_PB.SoLuong = sltonkhonhap.ToString();
                            ChuyenKho_PB.NhapTaiKho = makhonhap;
                            ck_bus.SuaTonKhoNhap(ck_pb);
                        }
                    }

                    ck_bus.XoaChuyenKho1(ck_pb);
                    ck_bus.XoaChuyenKho(ck_pb);
                    ChiTietChuyenKho ctck = new ChiTietChuyenKho();
                    addChild(ctck);
                }
            }

            //if (Flag_PB.Flag == 8)
            //{
            //    if (MessageBox.Show("Bạn có thực sự muốn xóa Nhóm khách hàng, nhà cung cấp <" + NhomKHNCC_PB.MaNhom + "> đã chọn không?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
            //    {
            //        nhom_bus.XoaNhomKHNCC(nhom_pb);
            //        ChiTietNhomKH_NCC nhom = new ChiTietNhomKH_NCC();
            //        addChild(nhom);
            //    }
            //}
        }

        private void barButtonItem2_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            OpenForm<ChiTietKho>();
        }

        private void navBarItem1_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e)
        {
            OpenForm<ChiTietNhapKho>();
        }

        private void barButtonItem1_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
         
            OpenForm<ChiTietVatTuHangHoa>();
        }

        private void navBarItem2_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e)
        {
            OpenForm<ChiTietXuatKho>();
        }

        private void barButtonItem35_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {

        }

        private void barButtonItem36_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            OpenForm<ChiTietDonVi>();
        }

        private void barButtonItem7_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            OpenForm<ChiTietKhachHang>();
        }

        private void barButtonItem8_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            OpenForm<ChiTietNhanVien>();
        }

        private void barButtonItem35_ItemClick_1(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            OpenForm<ChiTietNhomKH_NCC>();
        }

        private void barButtonItem9_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {

            OpenForm<ChiTietNhaCungCap>();
        }

        private void barButtonItem4_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            OpenForm<ChiTietDonViTinh>();
        }

        private void barButtonItem29_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if(MessageBox.Show("Bạn có muốn thoát khỏi chương trình không?","Thông báo",MessageBoxButtons.OKCancel,MessageBoxIcon.Question) == DialogResult.OK)
                Application.Exit();

        }



        private void OpenForm<T>()
        {
            // tim xem trong các form dang mở trong Main có cái form nào là dạng T k?
            var f = this.MdiChildren.FirstOrDefault(i => i is T);
            // nếu không có thì tao mới
            if (f == null)
            {
                f = Activator.CreateInstance<T>() as Form;
                f.MdiParent = this;
                f.Show();
            }
                // có mở rồi thì chọn nó
            else f.Activate();
        }

        private void navBarItem3_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e)
        {
            OpenForm<ChiTietChuyenKho>();
        }

    }
}
